package java_learn.java_web.基础增强.反射;

import java_learn.java_web.基础增强.Junit单元测试.Calculator;

import java.sql.SQLOutput;

/**
 * 获取Class对象的方式：
 * 1. Class.forName("全类名")：将字节码文件加载进内存，返回Class对象
 * 2. 类名.class：通过类名的属性class获取
 * 3. 对象.getClass()：getClass()方法在Object类中定义着。
 *
 * @Author: 李浩然
 * @Date: 2021/5/24 11:29 上午
 */
public class ReflectDemo01 {
    public static void main(String[] args) throws Exception {
        // 1. Class.forName("全类名")：将字节码文件加载进内存，返回Class对象
        Class cls = Class.forName("java_learn.java_web.基础增强.反射.Person");
        System.out.println(cls);
        // 2. 类名.class：通过类名的属性class获取
        Class<Person> cls2 = Person.class;
        System.out.println(cls2);
        // 3. 对象.getClass()：getClass()方法在Object类中定义着。
        Person p = new Person();
        Class cls3 = p.getClass();
        System.out.println(cls3);
        //== 比较三个对象
        System.out.println(cls == cls2);//true
        System.out.println(cls == cls3);//true

        Class c = Calculator.class;
        System.out.println(c == cls);
    }
}
